Source:SLASH'EM 0.0.7E7F2/flag.h
Below is the full text to flag.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/flag.h#line123]], for example. The latest source code for vanilla NetHack is at Source code. 1. /* SCCS Id: @(#)flag.h 3.4 2002/08/22 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. /* If you change the flag structure make sure you increment EDITLEVEL in */ 6. /* patchlevel.h if needed. Changing the instance_flags structure does */ 7. /* not require incrementing EDITLEVEL. */ 8. 9. #ifndef FLAG_H 10. #define FLAG_H 11. 12. /* 13. * Persistent flags that are saved and restored with the game. 14. * 15. */ 16. 17. struct flag { 18. #ifdef AMIFLUSH 19. boolean altmeta; /* use ALT keys as META */ 20. boolean amiflush; /* kill typeahead */ 21. #endif 22. #ifdef MFLOPPY 23. boolean asksavedisk; 24. #endif 25. boolean autodig; /* MRKR: Automatically dig */ 26. boolean autoquiver; /* Automatically fill quiver */ 27. boolean beginner; 28. #ifdef MAIL 29. boolean biff; /* enable checking for mail */ 30. #endif 31. boolean botl; /* partially redo status line */ 32. boolean botlx; /* print an entirely new bottom line */ 33. boolean confirm; /* confirm before hitting tame monsters */ 34. boolean debug; /* in debugging mode */ 35. #define wizard flags.debug 36. boolean end_own; /* list all own scores */ 37. boolean explore; /* in exploration mode */ 38. #ifdef OPT_DISPMAP 39. boolean fast_map; /* use optimized, less flexible map display */ 40. #endif 41. #define discover flags.explore 42. boolean female; 43. boolean forcefight; 44. boolean friday13; /* it's Friday the 13th */ 45. boolean groundhogday; /* KMH -- February 2 */ 46. boolean help; /* look in data file for info about stuff */ 47. boolean ignintr; /* ignore interrupts */ 48. #ifdef INSURANCE 49. boolean ins_chkpt; /* checkpoint as appropriate */ 50. #endif 51. boolean invlet_constant; /* let objects keep their inventory symbol */ 52. #ifdef SHOW_WEIGHT 53. boolean invweight; /* show weight in inventory and when picking up */ 54. #endif 55. 56. /*WAC keep_save option*/ 57. #ifdef KEEP_SAVE 58. boolean keep_savefile; /* Keep Old Save files*/ 59. #endif 60. boolean legacy; /* print game entry "story" */ 61. boolean lit_corridor; /* show a dark corr as lit if it is in sight */ 62. boolean made_amulet; 63. boolean menu_on_esc; /* show menu when hitting esc */ 64. boolean mon_moving; /* monsters' turn to move */ 65. boolean move; 66. boolean mv; 67. boolean bypasses; /* bypass flag is set on at least one fobj */ 68. boolean nap; /* `timed_delay' option for display effects */ 69. boolean nopick; /* do not pickup objects (as when running) */ 70. boolean null; /* OK to send nulls to the terminal */ 71. #ifdef MAC 72. boolean page_wait; /* put up a --More-- after a page of messages */ 73. #endif 74. boolean perm_invent; /* keep full inventories up until dismissed */ 75. boolean pickup; /* whether you pickup or move and look */ 76. boolean pickup_thrown; /* auto-pickup items you threw */ 77. 78. boolean pushweapon; /* When wielding, push old weapon into second slot */ 79. boolean rest_on_space; /* space means rest */ 80. boolean safe_dog; /* give complete protection to the dog */ 81. #ifdef EXP_ON_BOTL 82. boolean showexp; /* show experience points */ 83. #endif 84. #ifdef SCORE_ON_BOTL 85. boolean showscore; /* show score */ 86. #endif 87. #ifdef SHOW_DMG 88. boolean showdmg; /* show damage */ 89. #endif 90. #ifdef SHOW_WEIGHT 91. boolean showweight; /* show weight on status line */ 92. #endif 93. boolean silent; /* whether the bell rings or not */ 94. boolean sortpack; /* sorted inventory */ 95. boolean soundok; /* ok to tell about sounds heard */ 96. boolean sparkle; /* show "resisting" special FX (Scott Bigham) */ 97. boolean standout; /* use standout for --More-- */ 98. boolean time; /* display elapsed 'time' */ 99. boolean tombstone; /* print tombstone */ 100. boolean toptenwin; /* ending list in window instead of stdout */ 101. boolean verbose; /* max battle info */ 102. boolean prayconfirm; /* confirm before praying */ 103. int end_top, end_around; /* describe desired score list */ 104. unsigned ident; /* social security number for each monster */ 105. unsigned moonphase; 106. unsigned long suppress_alert; 107. #define NEW_MOON 0 108. #define FULL_MOON 4 109. unsigned no_of_wizards; /* 0, 1 or 2 (wizard and his shadow) */ 110. boolean travel; /* find way automatically to u.tx,u.ty */ 111. unsigned run; /* 0: h (etc), 1: H (etc), 2: fh (etc) */ 112. /* 3: FH, 4: ff+, 5: ff-, 6: FF+, 7: FF- */ 113. /* 8: travel */ 114. unsigned long warntype; /* warn_of_mon monster type M2 */ 115. int warnlevel; 116. int djinni_count, ghost_count; /* potion effect tuning */ 117. int pickup_burden; /* maximum burden before prompt */ 118. /* KMH, role patch -- Variables used during startup. 119. * 120. * If the user wishes to select a role, race, gender, and/or alignment 121. * during startup, the choices should be recorded here. This 122. * might be specified through command-line options, environmental 123. * variables, a popup dialog box, menus, etc. 124. * 125. * These values are each an index into an array. They are not 126. * characters or letters, because that limits us to 26 roles. 127. * They are not booleans, because someday someone may need a neuter 128. * gender. Negative values are used to indicate that the user 129. * hasn't yet specified that particular value. If you determine 130. * that the user wants a random choice, then you should set an 131. * appropriate random value; if you just left the negative value, 132. * the user would be asked again! 133. * 134. * These variables are stored here because the u structure is 135. * cleared during character initialization, and because the 136. * flags structure is restored for saved games. Thus, we can 137. * use the same parameters to build the role entry for both 138. * new and restored games. 139. * 140. * These variables should not be referred to after the character 141. * is initialized or restored (specifically, after role_init() 142. * is called). 143. */ 144. int initrole; /* starting role (index into roles[]) */ 145. int initrace; /* starting race (index into races[]) */ 146. int initgend; /* starting gender (index into genders[]) */ 147. int initalign; /* starting alignment (index into aligns[]) */ 148. int randomall; /* randomly assign everything not specified */ 149. int pantheon; /* deity selection for priest character */ 150. /* KMH, balance patch */ 151. int boot_count; /* boots from fishing pole */ 152. char inv_orderMAXOCLASSES; 153. char pickup_typesMAXOCLASSES; 154. #define NUM_DISCLOSURE_OPTIONS 5 155. #define DISCLOSE_PROMPT_DEFAULT_YES 'y' 156. #define DISCLOSE_PROMPT_DEFAULT_NO 'n' 157. #define DISCLOSE_YES_WITHOUT_PROMPT '+' 158. #define DISCLOSE_NO_WITHOUT_PROMPT '-' 159. char end_disclose+ 1; /* disclose various info 160. upon exit */ 161. char menu_style; /* User interface style setting */ 162. #ifdef AMII_GRAPHICS 163. int numcols; 164. unsigned short amii_dripens[ 20 ]; /* DrawInfo Pens currently there are 13 in v39 */ 165. AMII_COLOR_TYPE amii_curmap[ AMII_MAXCOLORS ]; /* colormap */ 166. #endif 167. }; 168. 169. /* 170. * Flags that are set each time the game is started. 171. * These are not saved with the game. 172. * 173. */ 174. 175. struct instance_flags { 176. boolean cbreak; /* in cbreak mode, rogue format */ 177. boolean DECgraphics; /* use DEC VT-xxx extended character set */ 178. boolean echo; /* 1 to echo characters */ 179. boolean IBMgraphics; /* use IBM extended character set */ 180. unsigned msg_history; /* hint: # of top lines to save */ 181. boolean num_pad; /* use numbers for movement commands */ 182. boolean news; /* print news */ 183. boolean window_inited; /* true if init_nhwindows() completed */ 184. boolean vision_inited; /* true if vision is ready */ 185. boolean menu_tab_sep; /* Use tabs to separate option menu fields */ 186. boolean menu_requested; /* Flag for overloaded use of 'm' prefix 187. * on some non-move commands */ 188. uchar num_pad_mode; 189. int menu_headings; /* ATR for menu headings */ 190. int purge_monsters; /* # of dead monsters still on fmon list */ 191. int *opt_booldup; /* for duplication of boolean opts in config file */ 192. int *opt_compdup; /* for duplication of compound opts in config file */ 193. uchar bouldersym; /* symbol for boulder display */ 194. boolean travel1; /* first travel step */ 195. coord travelcc; /* coordinates for travel_cache */ 196. #ifdef WIZARD 197. boolean sanity_check; /* run sanity checks */ 198. boolean mon_polycontrol; /* debug: control monster polymorphs */ 199. #endif 200. #ifdef TTY_GRAPHICS 201. char prevmsg_window; /* type of old message window to use */ 202. boolean extmenu; /* extended commands use menu interface */ 203. #endif 204. #ifdef MENU_COLOR 205. boolean use_menu_color; /* use color in menus; only if wc_color */ 206. #endif 207. #ifdef MFLOPPY 208. boolean checkspace; /* check disk space before writing files */ 209. /* (in iflags to allow restore after moving 210. * to >2GB partition) */ 211. #endif 212. #ifdef MICRO 213. boolean BIOS; /* use IBM or ST BIOS calls when appropriate */ 214. #endif 215. #if defined(MICRO) || defined(WIN32) 216. boolean rawio; /* whether can use rawio (IOCTL call) */ 217. #endif 218. #ifdef MAC_GRAPHICS_ENV 219. boolean MACgraphics; /* use Macintosh extended character set, as 220. as defined in the special font HackFont */ 221. unsigned use_stone; /* use the stone ppats */ 222. #endif 223. #if defined(MSDOS) || defined(WIN32) 224. boolean hassound; /* has a sound card */ 225. boolean usesound; /* use the sound card */ 226. boolean usepcspeaker; /* use the pc speaker */ 227. boolean tile_view; 228. boolean over_view; 229. boolean traditional_view; 230. #endif 231. #ifdef MSDOS 232. boolean hasalleg; /* has a Allegor compatible adapter */ 233. boolean usealleg; /* use the Allegro library */ 234. boolean hasvga; /* has a vga adapter */ 235. boolean usevga; /* use the vga adapter */ 236. boolean grmode; /* currently in graphics mode */ 237. #endif 238. #ifdef LAN_FEATURES 239. boolean lan_mail; /* mail is initialized */ 240. boolean lan_mail_fetched; /* mail is awaiting display */ 241. #endif 242. /* 243. * Window capability support. 244. */ 245. boolean wc_color; /* use color graphics */ 246. boolean wc_hilite_pet; /* hilight pets */ 247. boolean wc_ascii_map; /* show map using traditional ascii */ 248. boolean wc_tiled_map; /* show map using tiles */ 249. boolean wc_preload_tiles; /* preload tiles into memory */ 250. int wc_tile_width; /* tile width */ 251. int wc_tile_height; /* tile height */ 252. char *wc_tile_file; /* name of tile file;overrides default */ 253. boolean wc_inverse; /* use inverse video for some things */ 254. int wc_align_status; /* status win at top|bot|right|left */ 255. int wc_align_message; /* message win at top|bot|right|left */ 256. int wc_vary_msgcount; /* show more old messages at a time */ 257. char *wc_foregrnd_menu; /* points to foregrnd color name for menu win */ 258. char *wc_backgrnd_menu; /* points to backgrnd color name for menu win */ 259. char *wc_foregrnd_message; /* points to foregrnd color name for msg win */ 260. char *wc_backgrnd_message; /* points to backgrnd color name for msg win */ 261. char *wc_foregrnd_status; /* points to foregrnd color name for status win */ 262. char *wc_backgrnd_status; /* points to backgrnd color name for status win */ 263. char *wc_foregrnd_text; /* points to foregrnd color name for text win */ 264. char *wc_backgrnd_text; /* points to backgrnd color name for text win */ 265. char *wc_font_map; /* points to font name for the map win */ 266. char *wc_font_message; /* points to font name for message win */ 267. char *wc_font_status; /* points to font name for status win */ 268. char *wc_font_menu; /* points to font name for menu win */ 269. char *wc_font_text; /* points to font name for text win */ 270. int wc_fontsiz_map; /* font size for the map win */ 271. int wc_fontsiz_message; /* font size for the message window */ 272. int wc_fontsiz_status; /* font size for the status window */ 273. int wc_fontsiz_menu; /* font size for the menu window */ 274. int wc_fontsiz_text; /* font size for text windows */ 275. int wc_scroll_amount; /* scroll this amount at scroll_margin */ 276. int wc_scroll_margin; /* scroll map when this far from 277. the edge */ 278. int wc_map_mode; /* specify map viewing options, mostly 279. for backward compatibility */ 280. int wc_player_selection; /* method of choosing character */ 281. boolean wc_splash_screen; /* display an opening splash screen or not */ 282. boolean wc_popup_dialog; /* put queries in pop up dialogs instead of 283. in the message window */ 284. boolean wc_eight_bit_input; /* allow eight bit input */ 285. boolean wc_mouse_support; /* allow mouse support */ 286. boolean wc2_fullscreen; /* run fullscreen */ 287. boolean wc2_softkeyboard; /* use software keyboard */ 288. boolean wc2_wraptext; /* wrap text */ 289. 290. boolean cmdassist; /* provide detailed assistance for some commands */ 291. boolean obsolete; /* obsolete options can point at this, it isn't used */ 292. /* Items which belong in flags, but are here to allow save compatibility */ 293. boolean lootabc; /* use "a/b/c" rather than "o/i/b" when looting */ 294. boolean showrace; /* show hero glyph by race rather than by role */ 295. boolean travelcmd; /* allow travel command */ 296. int runmode; /* update screen display during run moves */ 297. #ifdef AUTOPICKUP_EXCEPTIONS 298. struct autopickup_exception *autopickup_exceptions2; 299. #define AP_LEAVE 0 300. #define AP_GRAB 1 301. #endif 302. #ifdef WIN32CON 303. #define MAX_ALTKEYHANDLER 25 304. char altkeyhandlerMAX_ALTKEYHANDLER; 305. #endif 306. }; 307. 308. /* 309. * Old deprecated names 310. */ 311. #ifdef TTY_GRAPHICS 312. #define eight_bit_tty wc_eight_bit_input 313. #endif 314. #ifdef TEXTCOLOR 315. #define use_color wc_color 316. #endif 317. #define hilite_pet wc_hilite_pet 318. #define use_inverse wc_inverse 319. #ifdef MAC_GRAPHICS_ENV 320. #define large_font obsolete 321. #endif 322. #ifdef MAC 323. #define popup_dialog wc_popup_dialog 324. #endif 325. #define preload_tiles wc_preload_tiles 326. 327. extern NEARDATA struct flag flags; 328. extern NEARDATA struct instance_flags iflags; 329. 330. /* runmode options */ 331. #define RUN_TPORT 0 /* don't update display until movement stops */ 332. #define RUN_LEAP 1 /* update display every 7 steps */ 333. #define RUN_STEP 2 /* update display every single step */ 334. #define RUN_CRAWL 3 /* walk w/ extra delay after each update */ 335. 336. #endif /* FLAG_H */ flag.h